//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _PredictBindingSiteByPattern_h__
#define _PredictBindingSiteByPattern_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class PredictBindingSiteByPattern { 

  private:
    
    String  OutFormatedArray (String* data, int type);
    String  OutFormatedArray (float* data, int size, int type);

  protected:

    String* sequence;
    String* header;
    
    float*  scoreAA;
    float*  scoreCH;
    float*  scorePH;
    float*  scoreSS;
    float*  scoreMT;
    float*  scoreCumul;
    float*  anchorResidues;

    String* toString;

  public:

    PredictBindingSiteByPattern ();
    PredictBindingSiteByPattern (const PredictBindingSiteByPattern&);
    PredictBindingSiteByPattern (const PredictBindingSiteByPattern*);

    ~PredictBindingSiteByPattern ();

    void    Sequence (String* sequence);
    void    Header (String* header);
    void    ScoreAA (float* scoreAA);
    void    ScoreCH (float* scoreCH);
    void    ScorePH (float* scorePH);
    void    ScoreSS (float* scoreSS);
    void    ScoreMT (float* scoreMT);
    void    ScoreCumul (float* scoreCumul);
    void    AnchorResidues (float* anchorResidues);

    String* Sequence (void);
    String* Header (void);
    float*  ScoreAA (void);
    float*  ScoreCH (void);
    float*  ScorePH (void);
    float*  ScoreSS (void);
    float*  ScoreMT (void);
    float*  ScoreCumul (void);
    float*  AnchorResidues (void);

    bool    AllocateMemoryForScore (int size);

    bool    LoadDataFromString (String*);
    String* ToString (void);

    PredictBindingSiteByPattern operator= (const PredictBindingSiteByPattern& predictBindingSiteByPattern);

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
